Default

Motivation and Definitions

An Architectural Decision (AD) is a justified design choice that addresses a functional or non-functional requirement that is architecturally significant. An Architecturally Significant Requirement (ASR) is a requirement that has a measurable effect on the architecture and quality of a software and/or hardware system. An Architectural Decision Record (ADR) captures a single AD and its rationale; Put it simply, ADR can help you understand the reasons for a chosen architectural decision, along with its trade-offs and consequences. The collection of ADRs created and maintained in a project constitute its decision log. All these are within the topic of Architectural Knowledge Management (AKM), but ADR usage can be extended to design and other decisions (“any decision record”).

The aim of the GitHub adr organization is to:

  1. Motivate the need for and benefits of AD capturing and establish a common vocabulary.
  2. Strengthen the tooling around ADRs, in support of agile practices as well as iterative and incremental engineering processes.
  3. Provide pointers to public knowledge in the context of AKM and ADRs.

ADRs in the Media

Background Information

The work in the adr organization is based on the guidelines and principles in Sustainable Architectural Decisions by Zdun et al., for instance the Y-statement format suggested in that article.

More general background information and ADR guidance is available: